package com.logic.landseaserver.service;

import java.util.Date;

import com.logic.common.exception.BusinessException;
import com.logic.common.service.ICRUDService;
import com.logic.landseaserver.common.exception.LandseaException;
import com.logic.landseaserver.domain.BillPayment;
import com.logic.landseaserver.ws.dto.BillPaymentDTO;
import com.logic.landseaserver.ws.dto.WeBankPayReqDTO;
import com.logic.landseaserver.ws.dto.WeBankPayRespDTO;

/**
 * @Author: jack
 * @Date: 2017/5/26
 * @Description: 账单支付接口类
 */
public interface IBillPaymentService extends ICRUDService
{
    
    /**
     * 
     * [简要描述]：插入pament表记录</br>
     * [详细描述]：</br>
     * [作者]：Aaron(2017-07-06)</br>
     *
     * @param paymentDTO 新增payment表
     * @return payment id
     * @throws LandseaException
     *
     */
    Integer insertBillPaymentDTO(BillPaymentDTO paymentDTO)
        throws LandseaException;
    
    void editBillPaymentDTO(BillPaymentDTO paymentDTO)
        throws BusinessException;
    
    void deletePayment(Integer id)
        throws BusinessException;
    
    WeBankPayRespDTO getBillWeBankPay(WeBankPayReqDTO payinfo)
        throws LandseaException, Exception;
    
    BillPayment getBillPayment(Integer billPaymentId);
    
    String updatePayStatus(Integer billId)
        throws Exception;
    
    void clearBillPayment(Date date);
    
    void updateBillpayment(BillPayment billPayment);
    
}
